12 research outputs found

    Certifying and reasoning about cost annotations of functional programs

    Get PDF
    We present a so-called labelling method to insert cost annotations in a higher-order functional program, to certify their correctness with respect to a standard compilation chain to assembly code including safe memory management, and to reason on them in a higher-order Hoare logic.Comment: Higher-Order and Symbolic Computation (2013

    31ème Journées Francophones des Langages Applicatifs

    Get PDF
    International audienc

    Des types aux assertions logiques (preuve automatique ou assistée de propriétés sur les programmes fonctionnels)

    No full text
    PARIS7-Bibliothèque centrale (751132105) / SudocSudocFranceF

    Stratified type inference for generalized algebraic data types

    No full text
    We offer a solution to the type inference problem for an extensionof Hindley and Milner's type system with generalized algebraic data types. Our approach is in two strata. The bottom stratum isa core language that marries type inference in the style of Hindley and Milner with type checking for generalized algebraic data types.This results in an extremely simple specification, where case con-structs must carry an explicit type annotation and type conversions must be made explicit. The top stratum consists of (two variants of)an independent shape inference algorithm. This algorithm accepts a source term that contains some explicit type information, propa-gates this information in a local, predictable way, and produces a new source term that carries more explicit type information. It canbe viewed as a preprocessor that helps produce some of the type annotations required by the bottom stratum. It is proven sound inthe sense that it never inserts annotations that could contradict the type derivation that the programmer has in mind

    Extended Static Checking of Call-by-Value Functional Programs

    No full text
    We present a Hoare logic for a call-by-value programming language equipped with recursive, higher-order functions, algebraic data types, and a polymorphic type system in the style of Hindley and Milner. It is the theoretical basis for a tool that extracts proof obligations out of programs annotated with logical assertions. These proof obligations, expressed in a typed, higher-order logic, are discharged using off-the-shelf automated or interactive theorem provers. Although the technical apparatus that we exploit is by now standard, its application to call-by-value functional programming languages appears to be new, and (we claim) deserves attention. As a sample application, we check the partial correctness of a balanced binary search tree implementation

    Morbig

    No full text
    corecore